using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.OracleClient;
using System.Collections.Generic;
using Pms.Utils;
using Biblioteca.Utils;
using Biblioteca.DataBase;
/*
 * 
 * Autor      : Jose Jornando de Carvalho Junior    
 * Data       : 10/04/2010 07:09:19
 * Descricao  : 
 * Alteracoes : 
 * 
 */

namespace SERIX
{
   public class CUnidadesRegionais
   {
       private string IDT_UNI_REG ;     
       private string NOME_UNI_REG ;

	   /// <sumary>
       /// Construtor da classe unidades_regionais
       /// <sumary>
       public CUnidadesRegionais()
       {
   
       }

	   /// <sumary>
       /// Construtor da classe Unidades_regionais
       /// <sumary>
       public CUnidadesRegionais( string IDT_UNI_REG, string NOME_UNI_REG )
       {
          this.IDT_UNI_REG = IDT_UNI_REG;         
          this.NOME_UNI_REG = NOME_UNI_REG;
       }
	   
	   #region Propriedades
     	/// <sumary>
        /// Identificador da unidade regional
        /// <sumary>
        public string Idt_uni_reg 
		{
		   get
		   {
		       return this.IDT_UNI_REG;
		   }
		   set
		   {
		       this.IDT_UNI_REG = value;
		   }
		}
     	
     	/// <sumary>
        /// Nome da unidade regional
        /// <sumary>
        public string Nome_uni_reg 
		{
		   get
		   {
		       return this.NOME_UNI_REG;
		   }
		   set
		   {
		       this.NOME_UNI_REG = value;
		   }
		}
	    #endregion Propriedades
	
	    /// <summary>
        /// Inserindo um novo Unidades_regionais.
        /// </summary>
        public void Inserir(string Login)
        {
		    OracleCommand command = new OracleCommand();
            OracleTransaction trans;

            string SQL = @"insert into Serix.SRX_UNIDADES_REGIONAIS
			                  ( IDT_UNI_REG, NOME_UNI_REG )
						   values
						      ( :IDT_UNI_REG, :NOME_UNI_REG )";
     		
			try
			{	
				command.Connection = BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, Login, BiblioPMS.Demo);
                trans = command.Connection.BeginTransaction();
                command.Transaction = trans;
                command.CommandType = CommandType.Text;
                command.CommandText = SQL;
				
				command.Parameters.Add(new OracleParameter("IDT_UNI_REG",OracleType.Number)); 				
				command.Parameters.Add(new OracleParameter("NOME_UNI_REG",OracleType.VarChar)); 
				
                command.Parameters["IDT_UNI_REG"].Value = this.IDT_UNI_REG;                
                command.Parameters["NOME_UNI_REG"].Value = this.NOME_UNI_REG;
				command.ExecuteNonQuery();
                command.Parameters.Clear();
                command.Transaction.Commit();
            }
            catch (Exception e)
            {
                command.Transaction.Rollback();

                if (e is OracleException)
                    throw new Exception(Biblio.ObterMensagem(((OracleException)e).Code, e.Message));
                else
                    throw new Exception(e.Message + " : " + "");
            }
		}
		
	    /// <summary>
        /// Alterando um Unidades_regionais.
        /// </summary>
        public void Alterar(string Login)
        {
		    OracleCommand command = new OracleCommand();
            OracleTransaction trans;

            string SQL = @"update Serix.SRX_UNIDADES_REGIONAIS set 
			                   NOME_UNI_REG = :NOME_UNI_REG
						   where
						       IDT_UNI_REG = :IDT_UNI_REG ";
     		
			try
			{	
				command.Connection = BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, Login, BiblioPMS.Demo);
                trans = command.Connection.BeginTransaction();
                command.Transaction = trans;
                command.CommandType = CommandType.Text;
                command.CommandText = SQL;
				
				command.Parameters.Add(new OracleParameter("IDT_UNI_REG",OracleType.Number)); 				
				command.Parameters.Add(new OracleParameter("NOME_UNI_REG",OracleType.VarChar)); 
				
                command.Parameters["IDT_UNI_REG"].Value = this.IDT_UNI_REG;                
                command.Parameters["NOME_UNI_REG"].Value = this.NOME_UNI_REG;
				command.ExecuteNonQuery();
                command.Parameters.Clear();
                command.Transaction.Commit();
            }
            catch (Exception e)
            {
                command.Transaction.Rollback();

                if (e is OracleException)
                    throw new Exception(Biblio.ObterMensagem(((OracleException)e).Code, e.Message));
                else
                    throw new Exception(e.Message + " : " + "");
            }
		}
		
	     /// <summary>
        /// Exclui um  Unidades_regionais.
        /// </summary>
        public void Excluir(string Login)
        {
            Tabela tab = new Tabela("SRX_UNIDADES_REGIONAIS", BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, Login,BiblioPMS.Demo));
            tab.adicionarFiltro(new Coluna("IDT_UNI_REG", DbType.Int32, this.IDT_UNI_REG));
            tab.delete();
        }
		
		static public DataTable ObterTodos(string login)
        {
            
            OracleCommand command = new OracleCommand();

            string SQL = @"select * from Serix.SRX_UNIDADES_REGIONAIS order by NOME_UNI_REG ";

            try
            {
                command.Connection = BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, login, false);
                command.CommandType = CommandType.Text;
                command.CommandText = SQL;

                DataTable tbl = new DataTable();
                tbl.Load(command.ExecuteReader(CommandBehavior.CloseConnection)); 
                return tbl; 
                
            }
            catch (Exception e)
            {
 
                if (e is OracleException)
                    throw new Exception(Biblio.ObterMensagem(((OracleException)e).Code, e.Message));
                else
                    throw new Exception(e.Message + " : " + "");
            }

        }
		
		static public CUnidadesRegionais PesquisaporCodigo(string idt_uni_reg, string login)
        {
            CUnidadesRegionais obj;
            string SQL = @"SELECT *
                            FROM  Serix.SRX_UNIDADES_REGIONAIS 
                            WHERE IDT_UNI_REG = :IDT_UNI_REG";
            Query qy = null;
            try
            {
                qy = new Query(BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, login, BiblioPMS.Demo), SQL);
				qy.AdicionarParametro(":IDT_UNI_REG", DbType.String, idt_uni_reg);
               
				qy.Executar();
                obj = new CUnidadesRegionais( qy.ObterCampo("IDT_UNI_REG"), qy.ObterCampo("NOME_UNI_REG") );
            }                                  
            catch
            {
                if (qy.EstadoConexao() == ConnectionState.Open)
                {
                    qy.FecharConexao();
                }
                return new CUnidadesRegionais();
            }
			finally
            {
                qy.FecharConexao();
            }
            return obj;
        }
		
		static public int ObterNovoIdt(string login)
        {
            string SQL = @"SELECT PKG_BIBSERIX.OBTER_IDT_UNI_REG() IDT From dual ";
            Query qy = null;
            try
            {
                qy = new Query(BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, login, BiblioPMS.Demo), SQL);
				qy.Executar();
				return Convert.ToInt32(qy.ObterCampo("IDT"));
            }
            catch
            {
                if (qy.EstadoConexao() == ConnectionState.Open)
                {
                    qy.FecharConexao();
                }
                return-1;
            }
			finally
            {
                qy.FecharConexao();
            }
        }

        static public DataTable ObterDescricoes(string login)
        {
            string SQL = "select nome_uni_reg from srx_unidades_regionais";
            Query qy = null;
            DataTable dt = null;

            try
            {
                qy = new Query(BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, login, BiblioPMS.Demo), SQL);
                qy.Executar();
                dt = qy.ObterDataTable();
                return dt;
            }
            catch
            {
                if (qy.EstadoConexao() == ConnectionState.Open)
                {
                    qy.FecharConexao();
                }
                return null;
            }
            finally
            {
                qy.FecharConexao();
            }
        }
        //static public DataTable ObterPorIDT_TER(string idt_ter, string ObterTodos)
        //{
            
        //    OracleCommand command = new OracleCommand();

        //    string SQL = @"select * from Serix.SRX_UNIDADES_REGIONAIS  where IDT_TER = :IDT_TER order by NOME_UNI_REG ";

        //    try
        //    {
        //        command.Connection = BiblioPMS.ObterConexao(BiblioPMS.aplicacaoSNG, ObterTodos, false);
        //        command.CommandType = CommandType.Text;
        //        command.CommandText = SQL;
        //        command.Parameters.Add(new OracleParameter("IDT_TER", OracleType.Number));
        //        command.Parameters["IDT_TER"].Value = idt_ter;
        //        DataTable tbl = new DataTable();
        //        tbl.Load(command.ExecuteReader(CommandBehavior.CloseConnection));
        //        return tbl;
        //    }
        //    catch (Exception e)
        //    {
        //        if (e is OracleException)
        //            throw new Exception(Biblio.ObterMensagem(((OracleException)e).Code, e.Message));
        //        else
        //            throw new Exception(e.Message + " : " + "");
        //    }

        //}
    }
}	

